<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class ClienteModel extends CI_Model {

    function __construct(){
        parent::__construct();
    }
    /**
     * Função que retorna as categorias do nível desejado, ou as pais se nada passado
     *
     * @param int $nivel
     * @return row de categorias
     */
    function inserir($dados){
        $this->db->insert("cliente", $dados);
        return $this->db->insert_id();
    }

    public function listar(){
        $query = $this->db->get("cliente");
        if( $query->num_rows() > 0 ) :
            return $query;
        else :
            return false;
        endif;
    }

    public function listar_juridico(){
        $this->db->where("tipoPessoa", "juridica");
        $query = $this->db->get("cliente");
        if( $query->num_rows() > 0 ) :
            return $query;
        else :
            return false;
        endif;
    }

    public function listar_fisico(){
        $this->db->where("tipoPessoa", "fisica");
        $query = $this->db->get("cliente");
        if( $query->num_rows() > 0 ) :
            return $query;
        else :
            return false;
        endif;
    }

    /**
     *Retorna a categoria do id passado
     *
     * @param int $idCategoria
     * @return object ou false
     */
    function getCliente($idCliente){
        $this->db->where("idCliente",$idCliente);
        $this->db->from("cliente");
        $query = $this->db->get();
        if( $query->num_rows() > 0 ) :
            return $query->row(0);
        else :
            return false;
        endif;
    }
    
    function getClienteNome($nome){
        $this->db->where("nome",$nome);
        $this->db->from("categoria");
        $query = $this->db->get();
        if( $query->num_rows() > 0 ) :
            return $query;
        else :
            return false;
        endif;
    }

    function getClienteEmail($email){
        $this->db->where("email",$email);
        $this->db->from("cliente");
        $query = $this->db->get();
        if( $query->num_rows() > 0 ) :
            return $query->row(0);
        else :
            return false;
        endif;
    }
    function getClienteValidacaoEmail($validacao_email){
        $this->db->where("validacaoEmail", $validacao_email);
        $this->db->from("cliente");
        $query = $this->db->get();
        if( $query->num_rows() > 0 ) :
            return $query->row(0);
        else :
            return false;
        endif;
    }
    
    function update($id, $dados){
        $this->db->where("idCliente", $id);
        $this->db->update("cliente", $dados);
    }

    function delete($id){
        $this->db->where("idCliente", $id);
        $this->db->delete("cliente");
    }

    function getClienteCnpj($cnpj){
        $this->db->where("cnpj", $cnpj);
        $this->db->from("cliente");
        $query = $this->db->get();

        if( $query->num_rows() > 0 ) :
            return $query->row(0);
        else :
            return false;
        endif;
    }
}
?>
